1. Field of the Invention
The present invention relates generally to bus driver circuits and associated methods and systems and more specifically relates to methods and apparatus to selectively allow and disallow changes to a impedance control signal applied to bus driver circuits.
2. Discussion of Related Art
It is generally known in electronics to couple multiple devices to a common, shared bus structure. Signals may be driven on the bus by one or more devices coupled thereto and may be received by one or more devices coupled thereto. Thus, a device may exchange information via the shared bus structure with one or more other devices coupled to the shared bus structure. Numerous commercial bus structures are well known to those of ordinary skill in the art including, for example, several variants of the Peripheral Computer Interconnect bus standards may be useful (e.g., PCI bus specifications as generally available at www.pcisig.org).
In many such electronic bus structures, electrical impedance characteristics of various signal paths may change depending on a number of environmental and application specific parameters associated with the system. Impedance may change due to environment factors such as changes in operating temperatures or supplied reference voltages or may change based on system configuration such as the number of receiving devices coupled to a particular bus signal path, etc. As such factors may vary over time, impedance mismatch conditions may arise when exchanging signals between a transmitting or generating device and a receiving device. Such impedance mismatches may result in so-called “reflections” (e.g., voltage reflections) of signals applied to various conductive paths. Such signal reflections represent noise in the exchange of information and may disrupt proper exchange of information or even prevent proper communication between devices coupled to the shared bus.
It is also the generally known in various commercial and custom bus structures to use driver circuits for generating and applying signals to the various conductive paths of the common, shared bus. In particular, impedance controlled driver circuits are frequently used where impedance characteristics of bus signals may frequently or dramatically change in a particular application. For example, where receiving devices may frequently be added or removed from a common shared bus structure, it may be useful to use impedance controlled bus driver circuits so that devices designed to drive signals on the bus may adapt to the frequent changes in impedance. Also, systems intended to operate over a wider range of temperatures or voltage conditions may experience dramatic shifts in signal path impedance. Such applications may also benefit from well-known impedance controlled bus driver circuits. Impedance controlled bus driver circuits are generally known to those of ordinary skill in the art. One such exemplary impedance controlled bus driver circuit is discussed at: “www.lsilogic.com/products/pci_x—2—0/”. Numerous similar circuits are readily available and documented from other commercial vendors and may be custom designed by an engineer in a specific application.
In general, impedance controlled bus driver circuits receive an impedance control signal from external circuits indicating a current impedance level setting used by the bus driver circuit to adapt its signal driving characteristics to the present level of impedance on the bus. Impedance sensor and control circuits may determine the present level of impedance for one or more signals on the shared bus and may generate the control signal for application to the impedance control driver circuits. A common approach for such an impedance control signal is the use of a bit field representing a binary encoded current level of impedance. Such a bit field may be one or more bits used to encode the present impedance level on the shared bus into one of a number of discrete impedance level values. For example, where an impedance control signal is a four bit signal, a binary encoded values of zero may represent a low or minimum impedance setting for the bus driver while a binary encoded value of fifteen (i.e., all ones in a four bit binary encoded field) may represent a maximum impedance setting for the bus driver circuit.
As the impedance sensing and control circuit monitors the common, shared bus structure for present impedance signals levels, it may change the impedance control signal applied to the various driver circuits. For example, in the case of an exemplary four bit binary encoded value as noted above, the nominal impedance setting may hover approximately at the midpoint of binary encoded values—i.e. at about seven or eight. Since this may represent the nominal operating range, transitions between, for example, a value of seven and eight may be frequent. If the value changes from seven, to eight, a problem may arise where invalid intermediate states of the impedance control signal may exist. For example a sensor may be changing the control settings from a value of seven to a value of eight and a brief intermediate state indicating all zeros may be sensed by the bus driver circuit. Thus, such an intermediate state could cause the bus driver circuit to inadvertently change its impedance setting briefly during application of a particular signal on the bus. An intermediate value of all zeros sensed by the bus driver circuit while driving a signal may cause the bus driver to dramatically shift its signal level during application of its driven signal to the shared bus structure. Such sudden shifts in the impedance setting of the bus driver circuit may cause precisely the kind of signal reflections intended to be avoided by the impedance control features of the bus driver circuit.
Those of ordinary skill in the art will readily recognize that transitions between a value of seven and eight in a four bit binary encoded field is merely exemplary of such a problem arising. More generally, any intermediate value or change in values during application of a driven signal to the bus may cause undesired reflections—precisely the problem to be avoided by use of impedance controlled bus driver circuits.
It is evident from the above discussion that a need exists for an improved method and apparatus to adapt a bus driver circuit to present impedance settings without causing unnecessary signal noise and reflections.